package com.agileboot.domain.performance.submission.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Map;

/**
 * 绩效上报项统计DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SubmissionStatisticsDTO {

    /**
     * 项目数量统计
     * key: 主类别（教研工作量、科研工作量、育人工作量、服务工作量、其他工作量）
     * value: 各状态的项目数量统计
     *   - key: 状态（DRAFT、PENDING_AUDIT、REJECTED、APPROVED）
     *   - value: 数量
     */
    private Map<String, Map<String, Long>> projectCountByCategoryAndStatus;

    /**
     * 分数信息
     */
    private ScoreInfoDTO scoreInfo;

    /**
     * 分数信息DTO
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ScoreInfoDTO {
        /**
         * 科研工作量
         */
        private BigDecimal researchWorkload;

        /**
         * 教研工作量
         */
        private BigDecimal teachingWorkload;

        /**
         * 育人工作量
         */
        private BigDecimal educationWorkload;

        /**
         * 服务工作量
         */
        private BigDecimal serviceWorkload;

        /**
         * 其他工作量
         */
        private BigDecimal otherWorkload;

        /**
         * 通用课程分数
         */
        private BigDecimal generalCourseScore;

        /**
         * 专业课程分数
         */
        private BigDecimal majorCourseScore;

        /**
         * 实验课程分数
         */
        private BigDecimal labCourseScore;

        /**
         * 待审核分数
         */
        private BigDecimal pendingScore;

        /**
         * 已审核总分
         */
        private BigDecimal approvedTotalScore;
    }
}







